/****************************************************************
 **  Nombre: DAOPreguntasEDD.java                          *
 **  Version: 1.0.0                                             *
 **  Diagrama: GAPI v5.0.6                                      *
 **  Autor: Alberto Castro                         *
 **  Creado: 24-febrero-2013
 *   Caso de uso: MGEDD1,MGEDD2,MGEDD3
 **  Modificado:                                                *
 ***************************************************************/
package DAO;

import AccesoBD.AccesoBaseDatos;
import Dominio.PosibleRespuestaEDD;
import Dominio.PreguntaEDD;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

/**
 *
 * Clase que controla las operaciones de base de datos  sobre dependencias didacticas.
 */
public class DAOPreguntasEDD {
    private final String TABLA_PREGUNTAS_EDD = "preguntas_edd";
    private final String COLUMNA_CLAVE_PREGUNTA = "cve_pregunta_edd";
    private final String COLUMNA_PREGUNTA = "pregunta";
    private AccesoBaseDatos acceso;
    private Connection conexion;
/**
 * Constructor de la clase
 */
    public DAOPreguntasEDD() {
        acceso = new AccesoBaseDatos();
        conexion = acceso.abrirConexion();
    }
/**
 * Cierra la conexion en la base de datos.
 */
    public void cerrarConexionAPreguntasEDD() {
        acceso.cerrarConexion(conexion);
    }
/**
 * Busca todas las dependencias didacticas.
 * @return Arreglo con las preguntas de desempeño docente.
 */
    public ArrayList<PreguntaEDD> buscarTodasLasPreguntasEDD() {
        ArrayList<PreguntaEDD> listaPreguntasEDD = new ArrayList<PreguntaEDD>();

        ResultSet resultadoBusqueda = null;

        try {
            Statement sentencia = acceso.crearSentenciaBD(conexion);
            String querySearch = "SELECT * FROM " + TABLA_PREGUNTAS_EDD + ";";
            resultadoBusqueda = sentencia.executeQuery(querySearch);
            
            while(resultadoBusqueda.next()) {
                int clavePregunta = resultadoBusqueda.getInt(1);
                String pregunta = resultadoBusqueda.getString(2);
                
                PreguntaEDD preguntaEDD = new PreguntaEDD();
                preguntaEDD.setClavePregunta(clavePregunta);
                preguntaEDD.setPregunta(pregunta);
                
                DAORespuestasPosiblesEDD daoRespuestasPosiblesEDD = new DAORespuestasPosiblesEDD();
                ArrayList<PosibleRespuestaEDD> listaDePosiblesRespuestas = daoRespuestasPosiblesEDD.buscarPosiblesRespuestasEDDPorPreguntaEDD(preguntaEDD);
                daoRespuestasPosiblesEDD.cerrarConexionARespuestasPosiblesEDD();
                
                preguntaEDD.setListaDeRespuestas(listaDePosiblesRespuestas); 
                
                listaPreguntasEDD.add(preguntaEDD); 
            }                        
            
        } catch (SQLException ex) {
            System.out.println("Ocurrió un problema al tratar de buscar las preguntas");
        }
        
        return listaPreguntasEDD;
    }        
}
